#ifndef MODEL_H
#define MODEL_H

#include <ilcplex/cplex.h>
#include "Problem.h"
#include "Solution.h"
#include "Exception.h"

class Model {
protected:
	CPXENVptr	cpxenv;
	CPXLPptr	cpxprob;
	Problem		*problem;

	bool		ready;

public:
	Model();
	~Model();

	virtual bool create( Problem *problem ) throw (Exception);
	virtual void initialize( Solution *solution ) throw (NotReady) = 0;
	virtual double solve( double timeLimit ) throw (NotReady) = 0;

};

#endif